/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jogopoo.Util;

import jogopoo.Personagem.Personagens;

/**
 *Classe de metodos estaticos para fazer contas
 * @author Administrador
 */
public class Matematica {

/**
 * calcula o angulo de inclinacao da reta que liga dois pontos
 * @param x
 * @param y
 * @param x2
 * @param y2
 * @return angulo teta
 */
    public static double direcaoPonto(int x,int y,int x2, int y2){
        double teta;

        if((x-x2) != 0){
         teta = Math.atan(((double)(y-y2)/(double)(x-x2)));
            if(x > x2)
              teta = Math.PI - teta;
              else if(y < y2 || x < x2)
                teta *= -1;
        return teta; }
         else
             return Math.toRadians(90);
    }

/**
 * Calcula a distancia entre dois personagems
 * @param p1
 * @param p2
 * @return d
 */
    public static double distanciaPers(Personagens p1,Personagens p2){
        double d;
        d = Math.sqrt((((p1.getPosicao().x+12) - (p2.getPosicao().x))*((p1.getPosicao().x+12) - (p2.getPosicao().x)))+(((p1.getPosicao().y+12) - (p2.getPosicao().y))*((p1.getPosicao().y+12) - (p2.getPosicao().y))));
        if(d < 0){
            d *= -1;
        }
        return d;
    }
    /**
     * calcula a distancia entre dois pontos
     * @param x1
     * @param y1
     * @param x2
     * @param y2
     * @return d
     */
    public static double distanciaPonto(int x1,int y1,int x2, int y2){
        double d;
        d = Math.sqrt((((x1+12) - (x2))*((x1+12) - (x2)))+(((y1+12) - (y2))*((y1+12) - (y2))));
        if(d < 0){
            d *= -1;
        }
        return d;
    }
}
